#include "../header.h"

//1.文件描述符的分配数量有限 - 跟系统有关
//2.文件描述符从小到大分配，如果 关闭就回收，再创建的话是补空缺的形式。
int main(int argc, char const *argv[])
{
    int fd = -5 ;
    //文件描述符的分配数量有限
    while ((fd = open("hello.txt",O_RDWR|O_CREAT|O_APPEND,0666)) != -1)
    {
       printf("fd = %d\n",fd);
    }
    printf("fd = %d\n",fd);
    //2.
    int fd1 = -3,fd2,fd3,fd4,fd5;
    //同一个文件是否可以被多次打开？  是。
    //同一个文件是否可以对应多个文件描述符？可以。
    fd1= open("hello1.txt",O_RDWR|O_CREAT|O_APPEND,0666);
    fd2= open("hello1.txt",O_RDWR|O_CREAT|O_APPEND,0666);
    fd3= open("hello1.txt",O_RDWR|O_CREAT|O_APPEND,0666);
    fd4= open("hello1.txt",O_RDWR|O_CREAT|O_APPEND,0666);
    fd5= open("hello1.txt",O_RDWR|O_CREAT|O_APPEND,0666);
    printf("fd1 = %d\n",fd1);
    printf("fd2 = %d\n",fd2);
    printf("fd3 = %d\n",fd3);
    printf("fd4 = %d\n",fd4);
    printf("fd5 = %d\n",fd5);

    close(fd3);
    //再次创建 
    int fdm= open("hello1.txt",O_RDWR|O_CREAT|O_APPEND,0666);
    printf("fdm = %d\n",fdm);

    return 0;
}
